/*-------------------------------------------------------------------------
 *
 * backendid.h
 *	  POSTGRES 后端 ID 通信定义
 *
 *
 * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/include/storage/backendid.h
 *
 *-------------------------------------------------------------------------
 */
#ifndef BACKENDID_H
#define BACKENDID_H

/* ----------------
 *		-cim 8/17/90
 * ----------------
 */
typedef int BackendId;			/* 唯一当前活动的后端标识符 */

#define InvalidBackendId		(-1)

extern PGDLLIMPORT BackendId MyBackendId;	/* 此后端的后端ID */

/* 我们的并行会话领导者的后端ID，如果没有则为InvalidBackendId */
extern PGDLLIMPORT BackendId ParallelLeaderBackendId;

/*
 * 我们会话的临时关系通常使用我们自己的BackendId，
 * 但并行工作者应使用其领导者的ID。
 */
#define BackendIdForTempRelations() \
	(ParallelLeaderBackendId == InvalidBackendId ? MyBackendId : ParallelLeaderBackendId)

#endif							/* BACKENDID_H */
